#ifndef LIKEDLIST_H
#define LIKEDLIST_H

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>



//可以构造链表有效结点类型，单向链表的有效结点由3部分组成：数据域 + prev指针域 + next指针域
typedef struct node
{
	char mp3[100];		//
	char avi[100];
	struct node * prev; 	//prev指针域 指向直接前驱
	struct node * next; 	//next指针域 指向直接后继
}Node_t;


//可以构造双向链表中头结点的类型，头结点就作为管理结构体，头结点是可选的!!!!!
typedef struct HeadNode
{
	int  NodeNum;  			//结点的数量
	struct node * Head; 	//首结点地址
	struct node * Tail; 	//尾结点地址
}Hnode_t;

Node_t * DoubleCirLinkedList_NewNode(char * music_mp3, char * music_avi);
Hnode_t * DoubleCirLinkedList_Create(void);

bool DoubleCirLinkedList_TailInsert(Hnode_t *Pmanager, char * music_mp3, char * avi);

void DoubleCirLinkedList_PrintNode(Hnode_t *Pmanager);

bool DoubleCirLinkedList_IsEmpty(Hnode_t *Pmanager);
#endif